package com.tarena.lbs.pojo.basic.dos;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import org.springframework.data.elasticsearch.annotations.GeoPointField;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;

@Data
@Document(indexName = "store")
public class StoreDO implements Serializable {

    @Id
    private Integer id;

    @Field(type = FieldType.Integer, name = "businessId")
    private Integer businessId;

    @Field(type = FieldType.Text, name = "storeName")
    private String storeName;

    @Field(type = FieldType.Text, name = "storePhone")
    private String storePhone;

    @Field(type = FieldType.Text, name = "storeHeadName")
    private String storeHeadName;

    @Field(type = FieldType.Text, name = "storeHeadPhone")
    private String storeHeadPhone;

    @Field(type = FieldType.Integer, name = "areaId")
    private Integer areaId;

    @Field(type = FieldType.Integer, name = "cityId")
    private Integer cityId;

    @Field(type = FieldType.Integer, name = "provinceId")
    private Integer provinceId;

    @Field(type = FieldType.Text, name = "storeLocation")
    private String storeLocation;

    @Field(type = FieldType.Text, name = "storeLongitude")
    private String storeLongitude;

    @Field(type = FieldType.Text, name = "storeLatitude")
    private String storeLatitude;

    @Field(type = FieldType.Text, name = "storeImagesId")
    private String storeImagesId;

    @Field(type = FieldType.Text, name = "storeLogo")
    private String storeLogo;

    @Field(type = FieldType.Text, name = "storeIntroduction")
    private String storeIntroduction;

    @Field(type = FieldType.Integer, name = "sort")
    private Integer sort;

    @Field(type = FieldType.Text, name = "tradeTime")
    private String tradeTime;

    @Field(type = FieldType.Integer, name = "storeStatus")
    private Integer storeStatus;

    @Field(type = FieldType.Text, name = "createTime")
    private Date createTime;

    @Field(type = FieldType.Text, name = "updateTime")
    private Date updateTime;

    @GeoPointField
    private GeoPoint location;

}